Load balancing has been integral to successfully providing high availability and nearly transparent scalability to web-based applications for almost two decades. Used at first to scale web-oriented protocols such as (Hypertext Transfer Protocol) HTTP, once the integration of web-based applications with other key data center protocols became more prevalent, load balancing became more of an imperative for those protocols as well.
Unlike HTTP, which is synchronous and stateless, some protocols—such as, Remote Authentication Dial-In User Service (RADIUS), Diameter, and Session Initiation Protocol (SIP)—are not only asynchronous but also do not adhere to a single request-reply communication sequence. This makes it more difficult to distribute those protocols because most load balancing systems are designed to operate best in a synchronous messaging environment in which a single request is made and responded to before another is processed.
Some of the most demanding environments require scalability solutions for such protocols. Service providers and financial institutions routinely process multi-gigabits of data in intervals that are unprecedented even on the most highly trafficked websites. These environments demand high levels of availability while simultaneously maintaining strenuous performance criteria. For example, SIP is one of the most commonly used signaling protocols in the world, but its reliance on authentication protocols such as Diameter, RADIUS, and the like, make it very difficult to scale efficiently.
One of the challenges associated with load-balancing these protocols is configuring a proxy device to distribute request messages across multiple server devices. Therefore, it is with respect to these considerations and others that the present invention has been made.